package com.blueocean_health.care.management.domain.dto;

import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;
import com.blueocean_health.care.management.domain.base.OrderRefundInfo;
import com.blueocean_health.care.management.em.OrderStatusEnum;
import com.blueocean_health.care.management.em.OrderTypeEnum;
import com.blueocean_health.care.management.em.PayStatusEnum;
import com.blueocean_health.care.management.em.SexEnum;

/**
 * @Author lcx
 * @Date 2017/8/21 10:17
 */


public class OrderInfoDto {
	private Integer id;
	private String orderId;
    private String patientName; //患者名称
    private String sex;
    @SuppressWarnings("unused")
	private String sexName;
    private String phone;
    private String contact;
    private String patientRemark; //患者备注
    private String patientId;  //住院id
    @JSONField(format = "yyyy-MM-dd")
    private Date admissionTime; //入院日期
    private List<OrderDetailDto> orderDetail;
    private String orderStatus;
    @SuppressWarnings("unused")
    private String orderStatusName;
    private String payStatus;
    @SuppressWarnings("unused")
    private String payStatusName;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    private SettlementDto receiptDetail ;
    private List<OrderRefundInfo> refund;
    private Integer age;
    private Double actuaAmount;//实际发生金额
    private Double orderAmount;//订单总额
    private String orderType;
    private String orderTypeName;
    private String superOrderId;
    private Boolean moneyStatus;//是否开据
    private String serviceOrderId;//所退明细id，只有退款时才有值
    private String refundOrderId;//退款订单所退的订单id
    private String serviceOrderTime;//退款关联的时间明细
    private String orderUpdateFlag;//订单是否编辑标记
    private String accountFlag;//是否入账 0否 1是
    
    public String getPayStatus() {
		return payStatus;
	}

	public void setPayStatus(String payStatus) {
		this.payStatus = payStatus;
	}

	public String getPayStatusName() {
    	return getPayStatus()==null||"".equals(getPayStatus())?null:PayStatusEnum.valueOf("_"+getPayStatus()).getVal();
	}

	public void setPayStatusName(String payStatusName) {
		this.payStatusName = payStatusName;
	}

	@JSONField(format = "yyyy-MM-dd")
    private Date accountTime;//入账时间
    
   	public String getOrderUpdateFlag() {
		return orderUpdateFlag;
	}

	public void setOrderUpdateFlag(String orderUpdateFlag) {
		this.orderUpdateFlag = orderUpdateFlag;
	}

	public String getAccountFlag() {
		return accountFlag;
	}

	public void setAccountFlag(String accountFlag) {
		this.accountFlag = accountFlag;
	}

	public Date getAccountTime() {
		return accountTime;
	}

	public void setAccountTime(Date accountTime) {
		this.accountTime = accountTime;
	}

	public String getServiceOrderTime() {
		return serviceOrderTime;
	}

	public void setServiceOrderTime(String serviceOrderTime) {
		this.serviceOrderTime = serviceOrderTime;
	}

	public String getServiceOrderId() {
		return serviceOrderId;
	}

	public void setServiceOrderId(String serviceOrderId) {
		this.serviceOrderId = serviceOrderId;
	}

	public String getRefundOrderId() {
		return refundOrderId;
	}

	public void setRefundOrderId(String refundOrderId) {
		this.refundOrderId = refundOrderId;
	}
	public Boolean getMoneyStatus() {
		return moneyStatus;
	}

	public void setMoneyStatus(Boolean moneyStatus) {
		this.moneyStatus = moneyStatus;
	}

	public String getOrderTypeName() {
    	return getOrderType()==null||"".equals(getOrderType())?null:OrderTypeEnum.valueOf("_"+getOrderType()).getVal();
	}

	public void setOrderTypeName(String orderTypeName) {
		this.orderTypeName = orderTypeName;
	}
    public String getOrderType() {
		return orderType;
	}

	public void setOrderType(String orderType) {
		this.orderType = orderType;
	}

	public String getSuperOrderId() {
		return superOrderId;
	}

	public void setSuperOrderId(String superOrderId) {
		this.superOrderId = superOrderId;
	}
	public SettlementDto getReceiptDetail() {
		return receiptDetail;
	}

	public void setReceiptDetail(SettlementDto receiptDetail) {
		this.receiptDetail = receiptDetail;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public Double getActuaAmount() {
		return actuaAmount;
	}

	public void setActuaAmount(Double actuaAmount) {
		this.actuaAmount = actuaAmount;
	}

	public Double getOrderAmount() {
		return orderAmount;
	}

	public void setOrderAmount(Double orderAmount) {
		this.orderAmount = orderAmount;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	
    public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public List<OrderRefundInfo> getRefund() {
		return refund;
	}

	public void setRefund(List<OrderRefundInfo> refund) {
		this.refund = refund;
	}



	public String getSexName() {
		return getSex()==null||"".equals(getSex())?null:SexEnum.valueOf("_"+getSex()).getVal();
	}

	public void setSexName(String sexName) {
		this.sexName = sexName;
	}

	public String getOrderStatus() {
		return orderStatus;
	}

	public void setOrderStatus(String orderStatus) {
		this.orderStatus = orderStatus;
	}

	public String getOrderStatusName() {
		return getOrderStatus()==null?null:OrderStatusEnum.valueOf("_"+getOrderStatus()).getVal();
	}

	public void setOrderStatusName(String orderStatusName) {
		this.orderStatusName = orderStatusName;
	}

	private Long version;

    public OrderInfoDto() {
        this.version = System.currentTimeMillis();
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getPatientName() {
        return patientName;
    }

    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getPatientRemark() {
        return patientRemark;
    }

    public void setPatientRemark(String patientRemark) {
        this.patientRemark = patientRemark;
    }

    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }

    public Date getAdmissionTime() {
		return admissionTime;
	}

	public void setAdmissionTime(Date admissionTime) {
		this.admissionTime = admissionTime;
	}

	public List<OrderDetailDto> getOrderDetail() {
        return orderDetail;
    }

    public void setOrderDetail(List<OrderDetailDto> orderDetail) {
        this.orderDetail = orderDetail;
    }



}
